#include <stdio.h>  // perror()
#include <fcntl.h>  // open()  file contrl
#include <stdlib.h> // exit()
#include <unistd.h> // read()/write()/close()

int main(int argc, char const *argv[])
{
    // 获取aa和bb文件的描述符
    int fd1 = open("aa.txt", O_RDONLY);
    int fd2 = open("bb.txt", O_WRONLY | O_APPEND);

    // 读取aa数据
    char buffer[1024];
    ssize_t read_len = read(fd1, buffer, 1024);
    while (read_len > 0)
    {
        // 将读取的数据写入bb
        write(fd2, buffer, read_len);

        // 将缓存区写到标准输出 write
        write(STDOUT_FILENO, buffer, read_len);

        // 接着读取后续数据
        read_len = read(fd1, buffer, 1024);
    }

    // 释放资源
    close(fd1);
    close(fd2);

    return 0;
}
